package foroFavoritos;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.testng.annotations.Test;

import es.cea.core.scopes.Contexto;
import es.cea.core.scopes.Sesion;
import foro.Foro;
import foro.Mensaje;
import registro.Usuario;


public class TestFavoritos {
	
	protected final Log logger = LogFactory.getLog(getClass());

	ServicioForo servicioForo;
	List<Foro> listaForos1;
	Usuario usuario1, usuario2;
	
	
	@Test
	public void pruebaFavoritos(){
		
		servicioForo = new ServicioForo();
		
		Mensaje ms1 = new Mensaje("un mensaje1");
		Mensaje ms2 = new Mensaje("un mensaje2");
		Mensaje ms3 = new Mensaje("un mensaje3");
		Mensaje ms4 = new Mensaje("un mensaje4");
		
		Sesion ses1 = new Sesion();
		servicioForo.sesion = ses1;
		servicioForo.context = new Contexto();
		
		usuario1 = new Usuario("user","pass", "Una direccion",null);
		usuario2 = new Usuario("user2","pass2", "Una direccion2",null);
		servicioForo.sesion.addAtributo("usuario", usuario1);
		
		servicioForo.sesion.addAtributo("favoritos", new HashSet<Mensaje>());
		servicioForo.context.addAtributo("favoritos", new HashSet<Mensaje>());
		
		servicioForo.addFavorito(ms2);
		servicioForo.addFavorito(ms3);
		
		Sesion ses2 = new Sesion();
		ses2.addAtributo("usuario", usuario2);
		ses2.addAtributo("favoritos", new HashSet<Mensaje>());
		servicioForo.sesion = ses2;
		
		servicioForo.addFavorito(ms1);
		servicioForo.addFavorito(ms4);
		
		// Asercion de resultados
		servicioForo.sesion = ses1;
			logger.debug("Mensajes en sesion de usuario 1");
			System.out.println(servicioForo.sesion.getAtributo("favoritos"));
		
		servicioForo.sesion = ses2;
		logger.debug("Mensajes en sesion de usuario 2");
			System.out.println(servicioForo.sesion.getAtributo("favoritos"));

		logger.debug("Mensajes de contexto");
		System.out.println(servicioForo.context.getAtributo("favoritos"));
		
		logger.debug("Imprime los favoritos contexto ordenados por nombre de mensaje");
		servicioForo.imprimeFavoritosOrdenNombre();
		
	
	}
	
	
	
}
